using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Db4objects.Db4o;
using MonitorTemperatura.Entidades;
using MonitorTemperatura.DataAccess;

namespace MonitorTemperatura.Operciones
{
    public class UbicacionOP
    {

        public UbicacionOP()
        { 
        
        }
        public void GrabarUbicacion(Ubicacion obj)
        {
            UbicacionDAO dao = new UbicacionDAO();
            dao.GrabarUbicacion(obj);
        }

        public Hashtable ObtenerUbicaciones(Ubicacion filtro)
        {
            UbicacionDAO dao = new UbicacionDAO();
            return dao.ObtenerUbicaciones(filtro);            
        }

        public void GrabarUbicaciones(Hashtable ht)
        {
            UbicacionDAO dao = new UbicacionDAO();

            foreach (string key in ht.Keys)
            {
                Ubicacion filtro = new Ubicacion();
                Ubicacion  obj;
                filtro.IdUbicacion = ((Ubicacion)ht[key]).IdUbicacion;
                obj = (Ubicacion)dao.ObtenerUbicacion(filtro);
                obj.Descripcion = ((Ubicacion)ht[key]).Descripcion;
                obj.Estado = ((Ubicacion)ht[key]).Estado;
                dao.GrabarUbicacion(obj);
            }   
        }

        public void GrabarLecturas(Ubicacion obj)
        {
            UbicacionDAO dao = new UbicacionDAO();

            Ubicacion filtro = new Ubicacion();
            Ubicacion obj2;
            if( obj.IdUbicacion>0)
                filtro.IdUbicacion = obj.IdUbicacion;
            
            obj2 = (Ubicacion)dao.ObtenerUbicacion(filtro,false);
            if (obj2!= null)
            {
                obj2.Estado = obj.Estado;
                if (obj.Lecturas[0] != null)
                {
                    
                    obj.Lecturas[0].idLectura = (obj2.Index+1).ToString();
                    obj2.Lecturas[obj2.Index] = obj.Lecturas[0];
                    obj2.Index++;
                }
                dao.GrabarUbicacion(obj2);    
            }
            else
            {
                obj.Estado = true;
                dao.GrabarUbicacion(obj);
            }
            
       
        }

    }
}
